#pragma once

#include "../Math/Matrix2.h"

using namespace std;

class RBM
{
public:
	RBM() = delete;

	RBM(int vLayerDimension, int hLayerDimension);

public:
	const Matrix2 & GetWeightMatrix();

	const Matrix2 & GetVisibleLayerBiasVector();

	const Matrix2 & GetHideLayerBiasVector();

	void ResetRBMParameter(const Matrix2 & weightMat, const Matrix2 & vLayerBiasVec, const Matrix2 & hLayerBiasVec);

protected:
	Matrix2 m_matWeight;
	Matrix2 m_matVLBias;
	Matrix2 m_matHLBias;
};